import { darkCssIsReady, loadDarkThemeCss } from "vite-plugin-theme-vite3/es/client"
import { addClass, hasClass, removeClass } from "/@/utils/domUtils"

export async function updateDarkTheme(mode: string | null = "light") {
  const htmlRoot = document.getElementById("htmlRoot")
  if (!htmlRoot) {
    return
  }
  const hasDarkClass = hasClass(htmlRoot, "dark")
  if (mode === "dark") {
    if (import.meta.env.PROD && !darkCssIsReady) {
      await loadDarkThemeCss()
    }
    htmlRoot.setAttribute("data-theme", "dark")
    if (!hasDarkClass) {
      addClass(htmlRoot, "dark")
    }
  } else {
    htmlRoot.setAttribute("data-theme", "light")
    if (hasDarkClass) {
      removeClass(htmlRoot, "dark")
    }
  }
}
